package br.com.biblioteca.bean;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import br.com.biblioteca.interfaces.GerenciadorDeEmail;
import br.com.biblioteca.interfaces.GerenciadorDeEmprestimo;
import br.com.biblioteca.model.Emprestimo;
import br.com.biblioteca.model.Usuario;



@Stateless
@Remote(GerenciadorDeEmprestimo.class)
public class GerenciadorDeEmprestimoBEAN implements GerenciadorDeEmprestimo{

	@PersistenceContext
	private EntityManager em;

	@EJB
	GerenciadorDeEmail gerenciadorDeEmail;
	
	@Override
	public void adicionarEmprestimo(Emprestimo e) {
		gerenciadorDeEmail.enviaEmail("Emprestimo Resevado", "Seu emprestimo foi resevado com sucesso.",  e.getUsuario().getEmail()); 
		em.persist(e);
	}
	@Override
	@SuppressWarnings("unchecked")
	public List<Emprestimo> getEmprestimos(Usuario usuario, String status) {
		Query query = em.createQuery("select e from Emprestimo e");
		return query.getResultList();
	}
	@Override
	@SuppressWarnings("unchecked")
	public List<Emprestimo> getEmprestimos(String status) {
		Query query = em.createQuery("select e from Emprestimo e where e.status = '"+ status +"'");
		return query.getResultList();
	}
	
	@Override
	public Emprestimo getEmprestimo(Emprestimo emprestimo) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void alterarEmprestimo(Emprestimo e) {
		em.merge(e);
		
	}

	@Override
	public void deletarEmprestimo(Emprestimo e) {
		Emprestimo gerenciador = em.find(Emprestimo.class, e.getId());
		em.remove(gerenciador);		
	}
public static void main(String[] args) {
	Calendar data = Calendar.getInstance();
	data.add(Calendar.DATE, 7);
	DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
	System.out.println( df.format(data.getTime()) );
	
}
}
